1.1 Sensitivity Analysis

from bokeh.io import output_notebook
output_notebook()
Loading BokehJS ...
from cameo import models
from marsi.cobra.flux_analysis import sensitivity_analysis
model = models.bigg.iJO1366

Sensitivity analysis for L-Serine

In this example, the ammount of produced serine is increased in steps. The biomass production will decrease with increased accumulation of Serine. This is a scenario where an metabolite analog would compete with Serine and the cell needs to increase the production of Serine to compete for biomass production and enzyme activity.

ser__L = model.metabolites.ser__L_c
result = sensitivity_analysis(model, ser__L, is_essential=True, steps=10,
                              biomass=model.reactions.BIOMASS_Ec_iJO1366_core_53p95M)
result.data_frame
fraction ser__L BIOMASS_Ec_iJO1366_core_53p95M
0 0.00 0.000000 0.982372
1 0.11 2.327074 0.879966
2 0.22 4.654149 0.776675
3 0.33 6.981223 0.673384
4 0.44 9.308298 0.567309
5 0.55 11.635373 0.459727
6 0.66 13.962447 0.352145
7 0.77 16.289522 0.244563
8 0.88 18.616597 0.129905
9 0.99 20.943671 0.010895
result.plot(width=700, height=500)

We can also see how does this affects other variables.

result = sensitivity_analysis(model, ser__L, is_essential=True, steps=10,
                              variables=[model.reactions.SERAT, model.reactions.SUCOAS],
                              biomass=model.reactions.BIOMASS_Ec_iJO1366_core_53p95M)
result.data_frame
fraction ser__L BIOMASS_Ec_iJO1366_core_53p95M SERAT SUCOAS
0 0.00 0.000000 0.982372 0.243502 -3.285931
1 0.11 2.327074 0.879966 0.218119 -2.187337
2 0.22 4.654149 0.776675 0.192516 -1.107405
3 0.33 6.981223 0.673384 0.166913 -0.027474
4 0.44 9.308298 0.567309 0.140620 0.297758
5 0.55 11.635373 0.459727 0.113953 0.241292
6 0.66 13.962447 0.352145 0.087286 0.184826
7 0.77 16.289522 0.244563 0.060619 0.000000
8 0.88 18.616597 0.129905 0.032200 0.068182
9 0.99 20.943671 0.010895 0.002701 0.005718
result.plot(width=700, height=500)

The same analysis can be done with different simulation methods (e.g. lMOMA).

from cameo.flux_analysis.simulation import lmoma
result = sensitivity_analysis(model, ser__L, is_essential=True, steps=10, simulation_method=lmoma,
                              biomass=model.reactions.BIOMASS_Ec_iJO1366_core_53p95M)
result.plot(width=700, height=500)

Sensitivity analysis for Pyruvate

In this example, the pyruvate of succinate is decreased. This is a scenario where the cells are evolved with a toxic compound and the consumption turnover of that compound decreases.

pyr = model.metabolites.pyr_c
result = sensitivity_analysis(model, pyr, is_essential=False, steps=10,
                              biomass=model.reactions.BIOMASS_Ec_iJO1366_core_53p95M)
result.plot(width=700, height=500)
result = sensitivity_analysis(model, pyr, is_essential=False, steps=10, simulation_method=lmoma,
                              biomass=model.reactions.BIOMASS_Ec_iJO1366_core_53p95M)
result.data_frame
fraction pyr BIOMASS_Ec_iJO1366_core_53p95M
0 0.00 0.000000 0.982372
1 0.11 0.153405 0.908226
2 0.22 0.365068 0.831883
3 0.33 0.523172 0.754858
4 0.44 0.681276 0.677833
5 0.55 0.839380 0.600808
6 0.66 0.997485 0.523783
7 0.77 1.155566 0.446758
8 0.88 1.008145 0.359887
9 0.99 1.533426 0.036982